1. Field of the Invention The present invention relates to a policy based scheduler to schedule a machine based on the policies. In particular, the invention relates to a scheduler that automatically adapts to a dynamically varying environment by adding or deleting policies based on information monitored in the machine.
2. Description of Related Art
Known printing machines schedule print jobs through the machine based, at least in part, on the capabilities of the machines. A sheet to be processed through the machine is scheduled through each stage using a scheduler module that is controlled by scheduling software. Some approaches use scheduling policies (e.g., xe2x80x9cuse tray1 if tray2 is low on paperxe2x80x9d) that specify criteria that must be satisfied to process the print job. In known machines, such policies are written into the logic of the scheduling software during a software development phase of the development of the printing machine. The policies are coded into the logic of the scheduling software, and the scheduling software is stored in a memory such as a ROM before the printing machine is shipped.
Scheduling rules and policies are typically dependent on the machine hardware being developed. For example, a developer of scheduling software would know, during the development time, that the duplex paper path of a particular product (e.g., for printing two sided copies) can hold a maximum of eight 8xc2xdxe2x80x3xc3x9711xe2x80x3 sheets. This means that a sheet that enters the duplex paper path will re-emerge eight pitches later since the duplex paper path is a non-stop loop. A pitch is the amount of time it takes to make one image. If the hardware is ever changed so that the length of the duplex loop changes, the software will also need to, be changed.
Other strategies for sheet scheduling are also product-specific and hard coded. For example, casual use products may strive for a low first-copy-out time, whereas production products may want to minimize the total run time even if it delays the first print out time. Once these types of policies are coded into the print scheduler, they necessitate changing the software if the policy for the product changes.
Because known systems pre-code the scheduling policies into the logic of the scheduling software, the scheduling software is static, difficult to update and not reusable on other printing machines. For example, a printing machine may be of a modular design and use a feeder module, a marker module and a stacker module, but after product release, the marker module may be redesigned to add new capabilities. Even though the modules themselves may be designed to be interchangeable, the scheduling software would have to be rewritten.
It is an object of the present invention to provide a flexible scheduler for a machine that is adaptable to dynamically varying conditions. It is a further object of the present invention to provide a process to add/delete scheduling policies to/from a list of scheduling policies based on a dynamically varying model of the machine.
These and other objects are achieved in a scheduler for a machine that includes a monitor and a selector. The monitor is used to detect an operation of the machine, the operation of the machine being at least one of a machine state, a machine performance and an environment. The selector is used to either add a selection policy from a library to a list of selection policies or to delete a selection policy from the list of selection policies in response to the detected operation. The selector includes logic to select the monitor from the library based on a model of the machine. The selector may include further logic to select monitor policies from the library, the monitor detecting the operation of the machine based on the selected monitor policies. The model of the machine includes dynamically varying information responsive to the operation detected by the monitor.